const child_process = require('child_process');

/**
 * 
 * @param {*} command 
 * @param {*} options { maxBuffer: 10 } 如果子进程超出限制会抛出err instanceof RangeError错误
 */
function exec(command, options) {
  return new Promise((resolve, reject) => {
    child_process.exec(command, options, (err, stdout, stderr) => {
      if (err) {
        reject(err.code ? new Error(stderr) : err);
      }
      resolve(stdout);
    });
  })
}

/*
docker run --rm -w=/usr/coderlane -v=/Users/monsterooo/Desktop/git/docker-example/src:/usr/coderlane:rw --name docker-example-ins docker-example
*/

exec(
  [
    'docker run --rm',
    '-w=/usr/coderlane', // 工作目录
    `-v=${__dirname}/src:/usr/coderlane:rw`, // 挂在目录
    '--name docker-example-ins', // 运行容器名称
    'docker-example' // 指定镜像
  ].join(' ')
).then(stdout => {
  console.log('stdout:', stdout);
}).catch(err => {
  console.log('err:', err);
})